package cn.funeralobjects.aoss.repository;

import cn.funeralobjects.aoss.entity.EBucket;
import cn.funeralobjects.common.repository.CommonCloudRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.Optional;

/**
 * Repository of EBucket
 *
 * @author FuneralObjects
 * Create date: 2020/6/1 11:59 AM
 */
public interface EBucketRepository extends CommonCloudRepository<EBucket, Integer> {

    /**
     * 判断是否存在
     *
     * @param prodResCode 所属资源编码
     * @param name        名称
     * @param delSalt     删除盐
     * @return true - 存在
     */
    boolean existsAllByProdResCodeAndNameAndDelSalt(String prodResCode, String name, Integer delSalt);

    /**
     * 判断是否存在
     *
     * @param prodResCode 所属资源编码
     * @param name        名称
     * @param delSalt     删除盐
     * @param id          排除id
     * @return true - 存在
     */
    boolean existsAllByProdResCodeAndNameAndDelSaltAndIdNot(String prodResCode, String name, Integer delSalt, Integer id);

    /**
     * 查询对象
     *
     * @param prodResCode 所属资源编码
     * @param name        名称
     * @param delSalt     删除盐
     * @return 实体数据
     */
    Optional<EBucket> findFirstByProdResCodeAndNameAndDelSalt(String prodResCode, String name, Integer delSalt);

    @Query("SELECT name from EBucket WHERE id =:id AND delSalt = :delSalt ")
    Optional<String> getNameByIdAndDelSalt(Integer id, Integer delSalt);
}
